package com.indexingsystem.system.service;

import java.util.List;

import com.indexingsystem.boss.Vo.PavilionColumnsSortVo;
import com.indexingsystem.boss.Vo.PavilionSortVo;
import com.indexingsystem.boss.Vo.PavilionsQueryVo;
import com.indexingsystem.boss.Vo.PavilionsReqVo;
import com.indexingsystem.boss.common.PagedResult;
import com.indexingsystem.boss.entity.PavilionColumns;
import com.indexingsystem.boss.entity.PavilionMenuRelations;
import com.indexingsystem.boss.entity.Pavilions;

public interface IPavilionsService{
	
	/**
	 * 获取分馆名称
	 * @param name
	 * @return
	 */
	Pavilions selectPavilionName(String name);
	
	/**
	 * 获取分馆信息列表
	 * @param pavilionsQueryVo
	 * @return
	 */
	PagedResult<Pavilions> selectPavilionsList(PavilionsQueryVo pavilionsQueryVo);
	
	/**
	 * 获取分馆信息总数
	 * @param pavilionsQueryVo
	 * @return
	 */
	Integer getPavilionsListCount(PavilionsQueryVo pavilionsQueryVo);
	
	/**
	 * 通过分馆Id获取分馆信息
	 * @param pavilionId
	 * @return
	 */
	Pavilions selectPavilionsByPrimaryKey(String pavilionId);
	
	/**
	 * 通过分馆Id获取分馆栏目关系信息
	 * @param pavilionId
	 * @return
	 */
	List<PavilionMenuRelations> selectPavilionMenuRelationsByPrimaryKey(String pavilionId);
	
	/**
	 * 添加分馆栏目关系信息
	 * @param pavilionMenuRelations
	 * @return
	 */
	int insertPavilionMenuRelations(PavilionsReqVo pavilionsReqVo) throws Exception;
	
	/**
	 * 添加分馆信息
	 * @param pavilions
	 * @return
	 */
	int updatePavilions(PavilionsReqVo pavilionsReqVo) throws Exception;
	
	/**
	 * 删除分馆信息
	 * @param ids
	 * @return
	 */
	int deletePavilions(List<String> ids) throws Exception;
	
	/**
	 * 根据id删除分馆信息.
	 * @param id
	 * @return
	 */
	int deletePavilionsById(String id);
	
	
	/**
	 * 通过分馆idlist 查询 所有排序值列表.
	 * 
	 * @param ids
	 * @return
	 */
	List<String> getPavilionsListByIds(List<String> ids);
	
	
	/**
	 * 通过排序获取分馆列表.
	 * @param columnOrder
	 * @return
	 */
	List<Pavilions> getPavilionsListByColumnOrder(String columnOrder);
	
	
	/**
	 * 获取分馆最大排序值.
	 * @return
	 */
    String getParentColumnOrderSortMax();
    
    /**
     * 通过排序获取分馆信息.
     * @param columnOrder
     * @return
     */
    Pavilions getPavilionByColumnOrder(String columnOrder);
    
    /**
     * 批量修改分馆上移、下移操作.
     * @param list
     * @return
     * @throws Exception
     */
     int updateBatchPavilions(List<Pavilions> list) throws Exception;
     
     List<Pavilions> getPavilionListByCondition(PavilionSortVo pavilionSortVo);

  	void updatePavilionListByCondition(PavilionSortVo pavilionSortVo);
}